package com.itqf.service;

import com.itqf.bean.DtsRole;
import com.itqf.dto.CommonsDto;
import com.itqf.dto.PermissionDto;
import com.itqf.utils.Permission;

import java.util.List;
import java.util.Map;

/**
 * projectName: gp_manage
 *
 * @author: 赵伟风
 * time: 2021/8/17 10:28
 * description:
 */
public interface DtsRoleService {

    /**
     * 根据角色id查询角色名称！
     * @param roleIds
     * @return
     */
    List<String> findRoleNameByRoleIds(Integer[] roleIds);

    /**
     * 是不是管理员
     *   判断依据： 角色命中包含管理员
     * @param roleIds
     * @return
     */
    boolean isAdminRole(Integer[] roleIds);


    /**
     * 查询全部role数据
     * @return
     */
    List<Map<String, Object>> findRoleAll();

    /**
     * 分页查询角色
     * @param dto
     * @return
     */
    Map<String, Object> findRoleByPage(CommonsDto dto);

    /**
     * 插入role数据
     * @param dtsRole
     * @return
     */
    Object insertRole(DtsRole dtsRole);

    /**
     * 修改role数据
     * @param dtsRole
     * @return
     */
    Object updateRoleById(DtsRole dtsRole);

    /**
     * 删除角色名
     * @param dtsRole
     * @return
     */
    Object deleteRoleById(DtsRole dtsRole);

    /**
     * 赋权列表
     *
     * @param permissionList
     * @param roleId
     * @return
     */
    Object findPermissionList(List<Permission> permissionList, int roleId);

    /**
     * 修改角色权限
     * @param permissionDto
     * @return
     */
    Object updateRolePermission(PermissionDto permissionDto);


    /**
     * 是不是超级管理员
     * @param  roleIds 角色id
     * @return true 是/ false不是
     */
    boolean checkSuper(Integer...roleIds);
}
